<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Administrator
 * Date: 22/06/11
 * Time: 17:29
 * To change this template use File | Settings | File Templates.
 */
require_once(Config::acquire('Controller', null, 'controller'));
class SlaController extends Controller
{

    /**
    * Add:
    * Hier wordt het invul formulier aangeroepen om een dienst toe te voegen
    * @return void
    */


    public function add()
    {
         require_once(Config::acquire('Sla', MODEL));
        require_once(Config::acquire('FormValidation', APPLICATION));
        FormValidation::stripInput();
        Sla::create(null,
                            $_POST['Omschrijving'],
                            $_POST['Doorlooptijd'],
                            $_POST['Afhandeltijd'],
                            $_POST['Prioriteit'])->update();
        SDS::redirect("Sla", "overzicht");
    }

    /**
     * Bewerken:
     * het terughalen van de oude opties en de mogelijkheid om deze te veranderen.
     * wordt direct doorgestuurd naar het formulier.
     *
     * @return void
     */

    public function bewerken()
    {
         require_once(Config::acquire('Sla', MODEL));
        $params = UrlDecoder::get_Params();
        if (!isset($params[0]))
            SDS::redirect("Sla", "overzicht");
        $id = $params[0];
        foreach (Sla::read($id)->toArray() as $key => $value) {
            $this->view->assign($key, $value);
        }
        $this->view->assign('form_URL', SDS::getURL('Sla', 'update', array($id)));

        $this->view->render("Sla_Change.tpl");
    }

    /**
     * Delete:
     * Hier wordt een bestaand gegeven gedeleted op moment dat de functie wordt aangeroepen
     * @return void
     *
     */


    public function delete()
    {
         $id = UrlDecoder::get_Params();
        if (isset($id[0])) {
            require_once(Config::acquire('Sla', MODEL));
            Sla::read($id[0])->delete();
            SDS::redirect("Sla", "overzicht", null);
         }
    }

    /**
     * Index:
     * Hier wordt in het kort info gegeven.
     * @return void
     */

    public function index()
    {
         $this->view->render('Sla.tpl');
    }

     /**
     * Overzicht:
     * Hier wordt een ovverzicht weergegeven en bij klikken op ID ga je naar detail
     * @return void
     */

    public function overzicht()
    {
        $list = array();
        require_once(Config::acquire('Sla', MODEL));
        foreach (Sla::readAll() as $sla)
            $list[] = $sla->toArray();
        $this->view->assign('$SlaTitel', "Sla Overzicht");
        $this->view->assign('detail_link', SDS::getURL('Sla', 'detail'));
        $this->view->assign("slas", $list);
        $this->view->render('SlaOverzicht.tpl');
    }

    /**
        * Detail:
        * Gedetaileerde omschrijving van een employee.
        * Bij klikken op wijzigen of verwijderen ga je naar betreffende onderdeel toe.
        * @return void
        */

    public function detail()
    {
        require_once(Config::acquire('Sla', MODEL));
        $params = UrlDecoder::get_Params();

        if (is_null($params[0]))
            SDS::redirect("Sla", "overzicht");
        $id = $params[0];
        foreach (Sla::read($id)->toArray() as $key => $value) {
            $this->view->assign($key, $value);
        }
        $this->view->assign("form_URL", SDS::getURL('Sla', 'edit', array($id)));
        $this->view->assign('wijzig_url', SDS::getURL('Sla', 'bewerken', array($params[0])));
        $this->view->assign('verwijder_url', SDS::getURL('Sla', 'delete', array($params[0])));
        $this->view->assign('$SlaTitle', 'Sla wijzigen');
        $this->view->render('Sla_Detail.tpl');
    }

    /**
     * Toevoegen:
     * Gegevens  worden klaargezet om in een formulier te worden gezet
     * @return void
     */

    public function toevoegen()
    {
         require_once(Config::acquire('Sla', MODEL));
        $this->view->assign('form_URL', SDS::getURL('Sla', 'add', null));

        $this->view->render("Sla_Change.tpl");
    }

    /**
    * Update:
    * Geeft de gegevens door aan de database en zet deze er in.
    * @return void
    */

    public function update()
    {
        require_once(Config::acquire('Sla', MODEL));
        require_once(Config::acquire('FormValidation', APPLICATION));
        FormValidation::stripInput();
        $params = UrlDecoder::get_Params();
        if (isset($params[0])) {
            $Sla = Sla::read($params[0]);
            $Sla->setOmschrijving($_POST['Omschrijving']);
            $Sla->setDoorlooptijd($_POST['Doorlooptijd']);
            $Sla->setAfhandeltijd($_POST['Afhandeltijd']);
            $Sla->setPrioriteit($_POST['Prioriteit']);
            $Sla->update();
            SDS::redirect("Sla", "detail", $params[0]);
        }
        SDS::redirect("Sla", "overzicht", null);
    }
}
